const app = getApp(); // 加载小程序的注册对象、包含了app.js中定义自定义方法和属性
const server = require("../../server/server.js");

Page({
  data: {
    modes: [
      { id: 1, name: "物品置换" },
      { id: 2, name: "物品出售" },
      { id: 3, name: "寻找物品" }
    ],
    types: {},
    st: 0,
    sm:0,
    showPrice:false,
    count:5,
    imgs:[]
  },
  onLoad() {
    this.loadTypes();
  },
  onShow() {
    // console.log(app.userInfo);
    //判断有没有授权  
    if (app.userInfo) {
      //判断在后台有没有注册
      if (!app.userInfo.id) {
        wx.showModal({
          title: '授权注册',
          content: '需要完成授权后，才能使用',
          showCancel: false,
          confirmText: '授权',
          confirmColor: '#3CC51F',
          success: (result) => {
            //点击授权按钮后confirm值为true
            if (result.confirm) {
              //跳转的页面为tabBar页面，不能用navigateTo
              wx.switchTab({
                url: '/pages/user/user'
              });
            }
          },
          fail: () => { }
        });
      }
    } else {
      wx.showModal({
        title: '授权注册',
        content: '需要完成授权后，才能使用',
        showCancel: false,
        confirmText: '授权',
        confirmColor: '#3CC51F',
        success: (result) => {
          if (result.confirm) {
            wx.switchTab({
              url: '/pages/user/user'
            });
          }
        },
        fail: () => { }
      });
    }
  },
  loadTypes() {
    //第一次进入发布页面时，从后台查产品类型
    server.loadTypeList()
      .then((data) => {
        console.log(data);
        this.setData({
          types: data
        });
      })
      .catch(server.errorFunction);
  },
  changeType(e) {
    // console.log(e);
    this.setData({
      st: e.detail.value
    });
  },
  changeMode(e){
    // console.log(e);
    this.setData({
      showPrice: e.detail.value==1?true:false,
      sm: e.detail.value
    });
  },
  //选择图片
  chooseImg(){
    wx.chooseImage({
      count: this.data.count,
      sizeType: ['compressed'],//压缩后的图片
      sourceType: ['album','camera'],
      success: (result)=>{
          // console.log(result);
          this.setData({
            //将获取图片生成的地址（为数组，图片地址有时间有效性）传给imgs
            imgs:this.data.imgs.concat(result.tempFilePaths)
          });
      },
    });
  },
  //删除图片
  removeImg({currentTarget:{dataset:{i}}}){
      let temp=this.data.imgs;
      temp.splice(i,1);
      this.setData({
        imgs:temp
      });
  },
  formSubmit({detail:{value}}){
      // console.log(e);
      wx.showLoading({
        title: "物品发布中...",
        mask: true
      });
      //将数据进行调整，整合成可以连接后台的数据
      let params=value;
      if(!params.price){
          params.price=0;
      }
      params.mode=this.data.modes[params.mode].id;
      params.typeId=this.data.types[params.typeId].id;
      params.status=1;
      params.userId=app.userInfo.id;
      // console.log(params);
      //1.图片的上传
      //不能通过wx.request上传，而是wx.uploadFile上传，且一次只能传一张图片
      let tempImgs=this.data.imgs;
      let parr=[];//作为promise.all里的数组
      for(let i=0;i<tempImgs.length;i++){
        let tempPromise=server.uploadFile(tempImgs[i]);
        parr.push(tempPromise);
      }
      //等所有的图片都上传完
      Promise.all(parr)
      .then((dataArr)=>{
        // 返回的数据[{…}, {…}, {…}]
        // console.log(dataArr);
        let imgs={};
        for( let i=0;i<dataArr.length;i++ ){
          //返回的url拼接为json格式如:{file1:1.png,file2:2.png}
            imgs["file"+(i+1)]=dataArr[i].result;
        }
        // 因为传到后台是要为string格式
        params.imgurls=JSON.stringify(imgs);
        // console.log(params);
        return server.addProduct(params);
      })
      .then((data)=>{
          wx.hideLoading();
          if(data.message=="success"){
            wx.showToast({
              title: '发布成功',
              icon: 'success',
              duration: 1500,
              success: (result)=>{
                wx.switchTab({
                  url: '/pages/find/find',
                });
              }
            });
          }
      })

  }
})